package com.credithc.signature.manager.service;


import com.credithc.signature.common.to.CommonResult;
import com.credithc.signature.manager.ro.AdminReq;

import java.io.UnsupportedEncodingException;

public interface AdminService {

    /**
     * 校验时间戳
     *
     * @param adminReq
     * @return
     */
    boolean verifyTimestamp(AdminReq adminReq);

    /**
     * 校验签名
     *
     * @param adminReq
     * @return
     */
    boolean verifySignature(AdminReq adminReq) throws UnsupportedEncodingException;

    /**
     * 业务核心方法
     *
     * @param adminReq
     * @return
     */
    Object invoke(AdminReq adminReq) throws Exception;


    /**
     * 获取返回参数
     *
     * @param adminReq
     * @return
     */
    Object adminVerify(AdminReq adminReq);

    /**
     * 校验Token
     *
     * @param adminReq
     * @return
     */
    boolean verifyToken(AdminReq adminReq);

    /**
     * 校验requestNo、version不为空
     *
     * @param adminReq
     * @return
     */
    CommonResult verifyParams(AdminReq adminReq);

    /**
     * 版本回退
     *
     * @param adminReq
     * @return
     */
    Object revoke(AdminReq adminReq) throws Exception;
}
